package cn.lingyangwl.agile.pay.client.constants;

import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.Arrays;

/**
 * 订单状态
 */
@AllArgsConstructor
@Getter
public enum OrderStatus {
    /**
     * 未支付
     */
    NO_PAY("1", "未支付"),

    /**
     * 支付成功
     */
    SUCCESS("2", "支付成功"),

    /**
     * 已关闭
     */
    CLOSED("3", "超时已关闭"),

    /**
     * 已取消
     */
    CANCEL("4", "用户已取消"),

    /**
     * 退款中
     */
    REFUND_PROCESSING("5", "退款中"),

    /**
     * 已退款
     */
    REFUND_SUCCESS("6", "已退款"),

    /**
     * 退款异常
     */
    REFUND_ABNORMAL("7", "退款异常");

    private final String code;

    /**
     * 描述
     */
    private final String desc;

    public static OrderStatus of(String code) {
        return Arrays.stream(values()).filter(e -> e.getCode().equalsIgnoreCase(code)).findFirst().orElse(null);
    }
}
